Electronic list user interface

ABSTRACT

Processing inputs to electronic list systems. Receiving, from a user device, a user input. Parsing the received user input for a minimum set of product data for querying a shopping service. Upon parsing a minimum set of product data for querying a shopping service, querying at least one shopping service using the parsed data. Receiving, from at least one queried shopping service, at least one product description responsive to the query. Presenting, via the user device, each received at least one product description to the user.

CROSS-REFERENCE TO RELATED APPLICATION

This patent application claims priority to U.S. Provisional PatentApplication No. 62/610,010, filed Dec. 22, 2017 and entitled “ElectronicList User Interface.” The entire contents of the above-identifiedapplication are hereby fully incorporated herein by reference.

TECHNICAL FIELD

The technology disclosed herein is related to technologies to processinputs to electronic list systems. Particular examples relate to parsinguser inputs for performing product searches.

SUMMARY

The technology described herein includes computer implemented methods,computer program products, and systems to process inputs to electroniclist systems. In some examples, a list system receives, from a userdevice, a user input. The list system parses the received user input fora minimum set of product data for querying a shopping service. Uponparsing a minimum set of product data for querying a shopping service,the list system queries at least one shopping service using the parseddata. The list system receives, from at least one queried shoppingservice, at least one product description responsive to the query. Thelist system presents, via the user device, each received at least oneproduct description to the user.

In some examples, parsing comprises, parsing the received user input foreach of type of data in the set {product genus, product subgenus,product name, brand name, price information, retailer name, manufacturername, size, quantity}. In such examples, a minimum set of product datafor querying a shopping service comprises a subset of the set. In someexamples, the user input is a voice input. In some examples, thetechnology further, in response to the presenting, receives from theuser device user selection of a presented item.

In some examples, in response to receiving user selection of a presenteditem, the technology orders the item for the user from a shoppingservice associated with the selected item. In some examples, presentingincludes presenting, via the user device, a plurality of matching itemsin a hierarchy organized by product name. In such embodiments, lowerhierarchy levels include one or more of price information, retailername, manufacturer name, size, and quantity. In some embodiments,presenting includes presenting the product name as an item in a list ofthe user along with the organized hierarchy.

These and other aspects, objects, features, and advantages of thetechnology described herein will become apparent to those havingordinary skill in the art upon consideration of the following detaileddescription of illustrated examples.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram depicting an operating environment to providea user interface for an electronic list, in accordance with certainexamples.

FIG. 2 is a block diagram illustrating methods to process inputs toelectronic list systems, in accordance with certain examples.

FIG. 3 is a block diagram illustrating methods to process inputs toelectronic list systems, in accordance with certain examples.

FIG. 4 is a block diagram illustrating methods to process inputs toelectronic list systems, in accordance with certain examples.

FIG. 5 is a diagram illustrating a user interface of the presenttechnology, in accordance with certain examples.

FIG. 6 is a diagram illustrating a user interface of the presenttechnology, in accordance with certain examples.

FIG. 7 is a diagram illustrating a user interface of the presenttechnology, in accordance with certain examples.

FIG. 8 is a block diagram illustrating methods to process inputs toelectronic list systems, in accordance with certain examples.

FIG. 9 is a block diagram depicting a computing machine and a module, inaccordance with certain examples.

DETAILED DESCRIPTION OF THE EXAMPLES

Smart electronic lists can leverage shopping data to help users shop alist. However, inputs to lists, such as voice and text inputs, sufferfrom several problems. For example, inputs can be one or more of:sporadic, generalized, and often poorly-focused. As another example,inputs can mix product description, product price, product source, andproduct brand information—in no certain order.

The combination of sporadic, generalized, mixed, and oftenpoorly-focused inputs to such lists (including from multiple users of asingle list), the requirement for highly-specific product descriptionsrequired as inputs by shopping services, and the unavailability ofnon-electronic methods to reconcile the differences between such inputs,creates unaddressed problems unique to electronic commerce.

By using and relying on the methods and systems described herein, thetechnology disclosed herein can maintain, and in some examples shop, anaccessible list that is organized and includes recommendations and otherhelpful features. As such, the technology may be employed to addressproblems unique to electronic lists in electronic commerce, such as theconflict described above.

Turning now to the drawings, in which like numerals represent like (butnot necessarily identical) elements throughout the figures, examples ofthe present technology are described in detail.

Example System Architectures

FIG. 1 is a block diagram depicting an example operating environment 100in accordance with certain examples of the technology disclosed herein.While each server, system, and device shown in the operating environmentis represented by one instance of the server, system, or device,multiple instances of each can be used. Further, while certain aspectsof operation of the present technology are presented in examples relatedto FIG. 1 to facilitate enablement of the claimed invention, additionalfeatures of the present technology, also facilitating enablement of theclaimed invention, are disclosed elsewhere herein.

As depicted in FIG. 1, the example operating environment 100 includescomputing devices 110, 120, 130, 140, 150, and 160. Each of devices 110,120, 130, 140, 150, and 160 may be configured to communicate with oneanother via communications network 99. In some examples, a userassociated with a device must install an application and/or make afeature selection to obtain the benefits of the technology describedherein.

Network 99 includes one or more wired or wireless telecommunicationsmeans by which network devices may exchange data. For example, thenetwork 99 may include one or more of a local area network (LAN), a widearea network (WAN), an intranet, an Internet, a storage area network(SAN), a personal area network (PAN), a metropolitan area network (MAN),a wireless local area network (WLAN), a virtual private network (VPN), acellular or other mobile communication network, a BLUETOOTH® wirelesstechnology connection, a near field communication (NFC) connection, anycombination thereof, and any other appropriate architecture or system,that facilitates the RF communication of signals, data, and/or messages.Throughout the discussion of examples, it should be understood that theterms “data” and “information” are used interchangeably herein to referto text, images, audio, video, or any other form of information that canexist in a computer-based environment.

Each computing device 110, 120, 130, 140, 150, and 160 can include acommunication module capable of transmitting and receiving data over thenetwork 99. For example, each network device can include a server, adesktop computer, a laptop computer, a tablet computer, a televisionwith one or more processors embedded therein and/or coupled thereto, asmart phone, a handheld computer, a personal digital assistant (PDA), orany other wired or wireless processor-driven device.

In examples described herein, computing device 110 is a list server 110operative to practice examples of the technology disclosed herein. Insome examples, the list server 110 provides Create, Read, Update, andDelete (CRUD) functionality for lists, and products in a list, inconjunction with one or more mobile devices 120, computing devices 130such as laptop computers, desktop computers, tablet computers, smartwatches, and wearables, and home devices 140 such as Google Homeappliance.

The Create function can provide application programming interfaces(APIs) from the list server 110 and graphic user interfaces (GUIs) inconjunction with web browsers (122, 132, 142) or native applications(124, 134, 144) on various devices (120, 130, 140) to the user to searchacross the catalog(s) visible to the list server 110 (such as internalcatalogs and catalogs of shopping service 150), create lists, and shopthe created lists (including shopping via shopping service 150).

The Read function can provide APIs and GUIs in a similar fashion tosearch for and display created lists and listed products. The Update andDelete functions provide user interfaces for editing and saving createdlists and listed products. Other functionality of the technologyprovides APIs and GUIs for setting list administrative characteristics,and provides user interfaces for communicating and collaborating withother users.

Each of mobile device 120 and computing device 130 can receive text,touch, image, and voice inputs for CRUD, administrative, andcommunication functions through the corresponding browser or nativeapplication. Home device 140 primarily receives voice inputs andresponds with audio outputs, though some examples of home device caninteract with users via a GUI. In some examples, such inputs can beprocessed in conjunction with an assistant server 160 implementing avirtual personal assistant, such as Google Assistant, as part of theinterface to the list server 110.

The connections illustrated are examples, and other means ofestablishing a communications link between the computers and devices canbe used. Moreover, those having ordinary skill in the art having thebenefit of the present disclosure will appreciate that the computingdevices illustrated in FIG. 1 may have any of several other suitablecomputer system configurations. For example, computing device 130 may beembodied as wearable device and may not include all the componentsdescribed above.

In examples, the computing devices, and any other computing machinesassociated with the technology presented herein, may be any type ofcomputing machine such as, but not limited to, those discussed in moredetail with respect to FIG. 9. Furthermore, any modules associated withany of these computing machines, such as modules described herein or anyother modules (scripts, web content, software, firmware, or hardware)associated with the technology presented herein may be any of themodules discussed in more detail with respect to FIG. 9. The computingmachines discussed herein may communicate with one another as well asother computer machines or communication systems over one or morenetworks, such as network 99. The network 99 may include any type ofdata or communications network, including any of the network technologydiscussed with respect to FIG. 9.

Example Processes

The example methods illustrated in the figures are described hereinafterwith respect to the components of the example operating environment 100.The example methods also can be performed with other systems and inother environments. The operations described with respect to any of thefigures can be implemented as executable code stored on a computer ormachine readable non-transitory tangible storage medium (e.g., floppydisk, hard disk, ROM, EEPROM, nonvolatile RAM, CD-ROM, etc.) that arecompleted based on execution of the code by a processor circuitimplemented using one or more integrated circuits; the operationsdescribed herein also can be implemented as executable logic that isencoded in one or more non-transitory tangible media for execution(e.g., programmable logic arrays or devices, field programmable gatearrays, programmable array logic, application specific integratedcircuits, etc.).

Referring to FIG. 2, and continuing to refer to FIG. 1 for context,methods 200 to process inputs to electronic list systems are illustratedin accordance with certain examples. In such methods 200, the listserver 110 receives a user input via a user device such as mobile device120—Block 210. As a continuing example, consider a user providing thevoice input “toys ten to fifteen dollars from wee bee toys” to a homedevice 140 running a native application 144 to listen for voicecommands. The native application 144 transmits the received voice datato the assistant server 160 over network 99 for the assistant server 160to perform speech-to-text-data conversion. The assistant server 160transmits a text file corresponding to voice input to the list server110 via an API (the receiving side of which, API 116, is shown in FIG.1). In other examples, speech-to-text-data conversion occurs in eitherthe user device, such as home device 140, mobile device 120, andcomputing device 130. In another example, the speech-to-text-dataconversion occurs in list server 110 itself

The list server 110 parses the received user input for a minimum set ofproduct data querying a shopping service—Block 220. In the continuingexample, list server 110 uses keyword lists to identify data types ofsingle-word and multi-word elements of the text file. Specifically,“toys,” which appears twice in the input, is a product genus—but alsoappears as part of the string “wee_bee_toys,” a retailer name. In thiscase, the second use of “toys” is recognized as part of the string“wee_bee_toys.” Note that “doll” is a product subgenus under “toys,”while a stock-keeping unit (SKU) descriptor of a specifically configureddoll from a specific manufacturer (and possible a specific retailer) isthe most granular level. Techniques such as Natural Language Processing(NLP), machine learning and other artificial intelligence approaches,and semi-automated classification, can be used in addition to, or inplace of, keyword list comparisons. The specific minimum data will varydependent on the shopping services 150 available to the list server 110.

Referring to FIG. 3, and continuing to refer to prior figures forcontext, methods 300 to process inputs to electronic list systems areillustrated in accordance with certain examples. In such methods thelist server 110 parses the received user input for each of type of datain the set {product genus, product subgenus(es), product name, brandname, price information, retailer name, manufacturer name, size,quantity}, wherein a minimum set of product data for querying a shoppingservice comprises a subset of the set—Block 322. In the continuingexample, none of product subgenus(es), product name, brand name,manufacture name, size, or quantity is found, but product genus “toys,”retailer “wee bee toys,” and price information “ten to fifteen dollars,”are found. In other example, different set elements and other hierarchystructures can are used.

Returning to FIG. 2, upon parsing a minimum set of product data forquerying a shopping service, the list server 110 queries at least oneshopping service 150 using the parsed data—Block 230. In the continuingexample, product genus “toys,” retailer “Wee Bee Toys,” and price range“$10-$15” are sufficient for the list server 110 to identify a pluralityof products and query the shopping service 150 using the parsed data. Inthe continuing example, shopping service 150 accepts a structured/taggedquery {<genus=“toys”> AND <retailer=“Wee Bee Toys”> AND <price range=10,15>} to shopping service Espresso 150.

The list server 110 receives at least one product description responsiveto the query from at least one shopping service 150—Block 240. In thecontinuing example, shopping service Espresso 150 returns over twohundred product descriptions across the genus “toys,” including productdescriptions in “girls' toys” first-level sub-genus and “boys' toys”first-level subgenus, as well as across several second-levelsub-genuses.

The list server 110 presents, via the user device, each received atleast one product description to the user—Block 250. Referring to FIG.4, and continuing to refer to prior figures for context, methods 400 forpresenting each received product description are shown, in accordancewith certain examples. In such examples, the list server 110 presents,via the user device 120, a plurality of matching items in a hierarchyorganized by product name, with lower hierarchy levels comprising one ormore of price information, retailer name, manufacturer name, size, andquantity—Block 452.

Referring to FIG. 5, and continuing to refer to prior figures forcontext, a user interface screen for presenting each received productdescription to the user via the user device is shown, in accordance withcertain examples. In the continuing example, a user interface screen 500for user device 120 presented via native application 144 includes theinitial input “toys” from “WeeBee Toys” for the price range “$10-$15” aslist item 510 along with a hierarchical representation 515 of theresults returned by shopping service 150. The list item entry includesthe retailer “WeeBee Toys” and price range “$10-$15” parsed from theuser input. The hierarchical representation 515 includes twosecond-level entries “Boys” 520 and “Girls” 530, each of which arehyperlinked to separate native application 144 user interface screenspresenting those results under each respective heading. User interfacescreen 500 shows the “Boys” 520 sub-list to include lower levels of thehierarchy for “trucks” 522, “cars” 524, and “puzzles” 526. Userinterface screen 500 also shows the “Girls” 530 sub-list to includelower levels of the hierarchy for “dolls” 532, “cars” 534, and “puzzles”536.

Referring to FIG. 6, and continuing to refer to prior figures forcontext, a user interface screen 600 for presenting each receivedproduct description to the user via the user device is shown, inaccordance with certain examples. In the continuing example, a userinterface screen 600 for user device 120 presented via nativeapplication 144 is presented in response to the user selecting the“Trucks” hyperlink 522. The user interface screen 600 includes productlist window 620. Product list window 620 displays product entries fortwo products (SuperTruck 624 and Dumpmaster 626) of thirty entriesreturned in the category “Boys:Trucks” 622 from shopping service 150 inresponse to the query built from the user input. The SuperTruck entry624 includes an illustration 624 a, name and price 624 b, and a “Moreinfo” button 622 c. The Dumpmaster entry 626 includes similar componentsfor illustration 626 a, name and price 626 b, and “More info” button 626c. The product list window also includes a hyperlinked “Next Page” linkfor viewing the remaining product entries in in the category returnedfrom shopping service 150 in response to the query. Selecting the “Moreinfo” button will cause the list server 110 to display a product pagefor the corresponding product via the user device 120. While the usercan use the list for tracking in-person shopping at brick-and-mortarretail locations, the user interface screen 600 also includes a “SHOPYOUR LIST” button 630 that will, in some examples, link to a productpage of the user interface. While FIG. 6 shows one checkbox entry of thelist, the list can, and in most instances will, include multiple items.Depending on the display capabilities of the user device, more than oneitem per page can be displayed. With each type of user device, thetechnology can display multiple items across multiple pages.

Referring to FIG. 7, and continuing to refer to prior figures forcontext, a user interface screen 700 for presenting each receivedproduct description to the user via the user device is shown, inaccordance with certain examples. In the continuing example, a userinterface screen 700 for user device 120 presented via nativeapplication 144 includes product page 710. Product page 710 includesimage 724 a and product title 724 b similar to those shown in connectionwith FIG. 6, along with product description 730. In particular,interface screen 700 includes “ADD TO CART” button 740 that adds theitem to the user's cart for checkout. If the user is using the list toshop in person, then the list view of FIG. 5 and FIG. 6.

Referring to FIG. 8, and continuing to refer to prior figures forcontext, methods 300 to process inputs to electronic list systems areillustrated in accordance with certain examples. In such methods, thelist server 110, in response to receiving user selection of a presenteditem, orders the item for the user from a shopping service associatedwith the selected item. In the continuing example, selection of the “ADDTO CART” 750 button initiated the order process.

Other Examples

FIG. 6 depicts a computing machine 2000 and a module 2050 in accordancewith certain examples. The computing machine 2000 may correspond to anyof the various computers, servers, mobile devices, embedded systems, orcomputing systems presented herein. The module 2050 may comprise one ormore hardware or software elements configured to facilitate thecomputing machine 2000 in performing the various methods and processingfunctions presented herein. The computing machine 2000 may includevarious internal or attached components such as a processor 2010, systembus 2020, system memory 2030, storage media 2040, input/output interface2060, and a network interface 2070 for communicating with a network2080.

The computing machine 2000 may be implemented as a conventional computersystem, an embedded controller, a laptop, a server, a mobile device, asmartphone, a set-top box, a kiosk, a router or other network node, avehicular information system, one or more processors associated with atelevision, a customized machine, any other hardware platform, or anycombination or multiplicity thereof. The computing machine 2000 may be adistributed system configured to function using multiple computingmachines interconnected via a data network or bus system.

The processor 2010 may be configured to execute code or instructions toperform the operations and functionality described herein, managerequest flow and address mappings, and to perform calculations andgenerate commands. The processor 2010 may be configured to monitor andcontrol the operation of the components in the computing machine 2000.The processor 2010 may be a general purpose processor, a processor core,a multiprocessor, a reconfigurable processor, a microcontroller, adigital signal processor (“DSP”), an application specific integratedcircuit (“ASIC”), a graphics processing unit (“GPU”), a fieldprogrammable gate array (“FPGA”), a programmable logic device (“PLD”), acontroller, a state machine, gated logic, discrete hardware components,any other processing unit, or any combination or multiplicity thereof.The processor 2010 may be a single processing unit, multiple processingunits, a single processing core, multiple processing cores, specialpurpose processing cores, co-processors, or any combination thereof.According to certain examples, the processor 2010 along with othercomponents of the computing machine 2000 may be a virtualized computingmachine executing within one or more other computing machines.

The system memory 2030 may include non-volatile memories such asread-only memory (“ROM”), programmable read-only memory (“PROM”),erasable programmable read-only memory (“EPROM”), flash memory, or anyother device capable of storing program instructions or data with orwithout applied power. The system memory 2030 may also include volatilememories such as random access memory (“RAM”), static random accessmemory (“SRAM”), dynamic random access memory (“DRAM”), and synchronousdynamic random access memory (“SDRAM”). Other types of RAM also may beused to implement the system memory 2030. The system memory 2030 may beimplemented using a single memory module or multiple memory modules.While the system memory 2030 is depicted as being part of the computingmachine 2000, one skilled in the art will recognize that the systemmemory 2030 may be separate from the computing machine 2000 withoutdeparting from the scope of the subject technology. It should also beappreciated that the system memory 2030 may include, or operate inconjunction with, a non-volatile storage device such as the storagemedia 2040.

The storage media 2040 may include a hard disk, a floppy disk, a compactdisc read only memory (“CD-ROM”), a digital versatile disc (“DVD”), aBlu-ray disc, a magnetic tape, a flash memory, other non-volatile memorydevice, a solid state drive (“SSD”), any magnetic storage device, anyoptical storage device, any electrical storage device, any semiconductorstorage device, any physical-based storage device, any other datastorage device, or any combination or multiplicity thereof. The storagemedia 2040 may store one or more operating systems, application programsand program modules such as module 2050, data, or any other information.The storage media 2040 may be part of, or connected to, the computingmachine 2000. The storage media 2040 may also be part of one or moreother computing machines that are in communication with the computingmachine 2000 such as servers, database servers, cloud storage, networkattached storage, and so forth.

The module 2050 may comprise one or more hardware or software elementsconfigured to facilitate the computing machine 2000 with performing thevarious methods and processing functions presented herein. The module2050 may include one or more sequences of instructions stored assoftware or firmware in association with the system memory 2030, thestorage media 2040, or both. The storage media 2040 may thereforerepresent examples of machine or computer readable media on whichinstructions or code may be stored for execution by the processor 2010.Machine or computer readable media may generally refer to any medium ormedia used to provide instructions to the processor 2010. Such machineor computer readable media associated with the module 2050 may comprisea computer software product. It should be appreciated that a computersoftware product comprising the module 2050 may also be associated withone or more processes or methods for delivering the module 2050 to thecomputing machine 2000 via the network 2080, any signal-bearing medium,or any other communication or delivery technology. The module 2050 mayalso comprise hardware circuits or information for configuring hardwarecircuits such as microcode or configuration information for an FPGA orother PLD.

The input/output (“I/O”) interface 2060 may be configured to couple toone or more external devices, to receive data from the one or moreexternal devices, and to send data to the one or more external devices.Such external devices along with the various internal devices may alsobe known as peripheral devices. The I/O interface 2060 may include bothelectrical and physical connections for operably coupling the variousperipheral devices to the computing machine 2000 or the processor 2010.The I/O interface 2060 may be configured to communicate data, addresses,and control signals between the peripheral devices, the computingmachine 2000, or the processor 2010. The I/O interface 2060 may beconfigured to implement any standard interface, such as small computersystem interface (“SCSI”), serial-attached SCSI (“SAS”), fiber channel,peripheral component interconnect (“PCP”), PCI express (PCIe), serialbus, parallel bus, advanced technology attached (“ATA”), serial ATA(“SATA”), universal serial bus (“USB”), Thunderbolt, FireWire, variousvideo buses, and the like. The I/O interface 2060 may be configured toimplement only one interface or bus technology. Alternatively, the I/Ointerface 2060 may be configured to implement multiple interfaces or bustechnologies. The I/O interface 2060 may be configured as part of, allof, or to operate in conjunction with, the system bus 2020. The I/Ointerface 2060 may include one or more buffers for bufferingtransmissions between one or more external devices, internal devices,the computing machine 2000, or the processor 2010.

The I/O interface 2060 may couple the computing machine 2000 to variousinput devices including mice, touch-screens, scanners, electronicdigitizers, sensors, receivers, touchpads, trackballs, cameras,microphones, keyboards, any other pointing devices, or any combinationsthereof. The I/O interface 2060 may couple the computing machine 2000 tovarious output devices including video displays, speakers, printers,projectors, tactile feedback devices, automation control, roboticcomponents, actuators, motors, fans, solenoids, valves, pumps,transmitters, signal emitters, lights, and so forth.

The computing machine 2000 may operate in a networked environment usinglogical connections through the network interface 2070 to one or moreother systems or computing machines across the network 2080. The network2080 may include wide area networks (WAN), local area networks (LAN),intranets, the Internet, wireless access networks, wired networks,mobile networks, telephone networks, optical networks, or combinationsthereof. The network 2080 may be packet switched, circuit switched, ofany topology, and may use any communication protocol. Communicationlinks within the network 2080 may involve various digital or an analogcommunication media such as fiber optic cables, free-space optics,waveguides, electrical conductors, wireless links, antennas,radio-frequency communications, and so forth.

The processor 2010 may be connected to the other elements of thecomputing machine 2000 or the various peripherals discussed hereinthrough the system bus 2020. It should be appreciated that the systembus 2020 may be within the processor 2010, outside the processor 2010,or both. According to certain examples, any of the processor 2010, theother elements of the computing machine 2000, or the various peripheralsdiscussed herein may be integrated into a single device such as a systemon chip (“SOC”), system on package (“SOP”), or ASIC device.

The present technology may comprise a computer program that embodies thefunctions described and illustrated herein, wherein the computer programis implemented in a computer system that comprises instructions storedin a machine-readable medium and a processor that executes theinstructions. However, it should be apparent that there could be manydifferent ways of implementing the present technology in computerprogramming, and the examples should not be construed as limited to anyone set of computer program instructions. Further, a skilled programmerwould be able to write such a computer program to implement the presenttechnology as described herein based on the appended flow charts andassociated description in the application text. Therefore, disclosure ofa particular set of program code instructions is not considerednecessary for an adequate understanding of how to make and use thetechnology described herein. Further, those skilled in the art willappreciate that one or more aspects of the technology described hereinmay be performed by hardware, software, or a combination thereof, as maybe embodied in one or more computing systems. Moreover, any reference toan act being performed by a computer should not be construed as beingperformed by a single computer as more than one computer may perform theact.

The technology described herein can be used with computer hardware andsoftware that perform the methods and processing functions describedherein. The systems, methods, and procedures described herein can beembodied in a programmable computer, computer-executable software, ordigital circuitry. The software can be stored on computer-readablemedia. For example, computer-readable media can include a floppy disk,RAM, ROM, hard disk, removable media, flash memory, memory stick,optical media, magneto-optical media, CD-ROM, etc. Digital circuitry caninclude integrated circuits, gate arrays, building block logic, fieldprogrammable gate arrays (FPGA), etc.

The example systems, methods, and acts described in the examplespresented previously are illustrative, and, in alternative examples,certain acts can be performed in a different order, in parallel with oneanother, omitted entirely, and/or combined between different examples,and/or certain additional acts can be performed, without departing fromthe scope and spirit of various examples. Accordingly, such alternativeexamples are included in the scope of the following claims, which are tobe accorded the broadest interpretation to encompass such alternateexamples.

Although specific examples have been described above in detail, thedescription is merely for purposes of illustration. It should beappreciated, therefore, that many aspects described above are notintended as required or essential elements unless explicitly statedotherwise. Modifications of, and equivalent components or actscorresponding to, the disclosed aspects of the examples, in addition tothose described above, can be made by a person of ordinary skill in theart, having the benefit of the present disclosure, without departingfrom the spirit and scope of technology described herein defined in thefollowing claims, the scope of which is to be accorded the broadestinterpretation so as to encompass such modifications and equivalentstructures.

What is claimed is:
 1. A computer-implemented method to process inputsto electronic list systems, comprising: receiving, by one or morecomputing devices of the electronic list system from a user device, auser input; parsing, by the one or more computing devices, the receiveduser input for a minimum set of product data for querying a shoppingservice; upon parsing the minimum set of product data for querying theshopping service, querying, by the one or more computing devices, atleast one shopping service using the parsed data; receiving, by the oneor more computing devices from at least one queried shopping service, atleast one product description responsive to the query; and presenting,by the one or more computing devices via the user device, each receivedat least one product description to the user.
 2. The method of claim 1,wherein parsing comprises, parsing, by the one or more computingdevices, the received user input for each of type of data in the set{product genus, product subgenus, product name, brand name, priceinformation, retailer name, manufacturer name, size, quantity}, whereina minimum set of product data for querying a shopping service comprisesa subset of the set.
 3. The method of claim 1, wherein the user input isa voice input.
 4. The method of claim 1, further comprising, in responseto the presenting, receiving, by the one or more computing devices, fromthe user device user selection of a presented item.
 5. The method ofclaim 4, further comprising: in response to receiving user selection ofa presented item, ordering, by the one or more computing devices, theitem for the user from a shopping service associated with the selecteditem.
 6. The method of claim 1, wherein presenting comprises presenting,by the one or more computing devices via the user device, a plurality ofmatching items in a hierarchy organized by product name, with lowerhierarchy levels comprising one or more of price information, retailername, manufacturer name, size, and quantity.
 7. The method of claim 6,wherein presenting comprises presenting, by the one or more computingdevices, the product name as an item in a list of the user along withthe organized hierarchy.
 8. A computer program product, comprising: anon-transitory computer-readable storage device havingcomputer-executable program instructions embodied thereon that whenexecuted by a computer cause the computer process inputs to electroniclist systems, the computer-executable program instructions comprising:computer-executable program instructions to receive, from a user device,a user input; computer-executable program instructions to parse thereceived user input for a minimum set of product data for querying ashopping service; computer-executable program instructions to, uponparsing the minimum set of product data for querying the shoppingservice, query at least one shopping service using the parsed data;computer-executable program instructions to receive, from at least onequeried shopping service, at least one product description responsive tothe query; and computer-executable program instructions to present, viathe user device, each received at least one product description to theuser.
 9. The computer program product of claim 8, wherein parsingcomprises, parsing the received user input for each of type of data inthe set {product genus, product subgenus, product name, brand name,price information, retailer name, manufacturer name, size, quantity},wherein a minimum set of product data for querying a shopping servicecomprises a subset of the set.
 10. The computer program product of claim8, wherein the user input is a voice input.
 11. The computer programproduct of claim 8, further comprising, computer-executable programinstructions, in response to the presenting, to receive from the userdevice user selection of a presented item.
 12. The computer programproduct of claim 11, further comprising, computer-executable programinstructions, in response to receiving user selection of a presenteditem, to order the item for the user from a shopping service associatedwith the selected item.
 13. The computer program product of claim 8,wherein presenting comprises presenting, via the user device, aplurality of matching items in a hierarchy organized by product name,with lower hierarchy levels comprising one or more of price information,retailer name, manufacturer name, size, and quantity.
 14. The computerprogram product of claim 13, wherein presenting comprises presenting theproduct name as an item in a list of the user along with the organizedhierarchy.
 15. A system to communicate digital data between computingdevices using sound, the system comprising: a storage device; and aprocessor communicatively coupled to the storage device, wherein theprocessor executes application code instructions that are stored in thestorage device to cause the system to: receive, from a user device, auser input; parse the received user input for a minimum set of productdata for querying a shopping service; upon parsing the minimum set ofproduct data for querying the shopping service, query at least oneshopping service using the parsed data; receive, from at least onequeried shopping service, at least one product description responsive tothe query; and present, via the user device, each received at least oneproduct description to the user.
 16. The system of claim 15, whereinparsing comprises, parsing, by the one or more computing devices, thereceived user input for each of type of data in the set {product genus,product subgenus, product name, brand name, price information, retailername, manufacturer name, size, quantity}, wherein a minimum set ofproduct data for querying a shopping service comprises a subset of theset.
 17. The system of claim 15, wherein the user input is a voiceinput.
 18. The system of claim 15, further comprising,computer-executable program instructions, in response to the presenting,to receive from the user device user selection of a presented item. 19.The system of claim 11, further comprising, computer-executable programinstructions, in response to receiving user selection of a presenteditem, to order the item for the user from a shopping service associatedwith the selected item.
 20. The system of claim 15, wherein presentingcomprises presenting, by the one or more computing devices via the userdevice, a plurality of matching items in a hierarchy organized byproduct name, with lower hierarchy levels comprising one or more ofprice information, retailer name, manufacturer name, size, and quantity.